回到昨天的程式碼
module tb1();
reg Data_tb1;
reg clk_tb1;
reg reset_tb1;
Wire[7:0] Out_tb1;
Wire En_out_tb1;
Rs232_test1 Rs232_test_tb1(
    .Data1(Data_tb1),.clk(clk_tb1),.reset1(reset_tb1),
    .Out1(Out_tb1),.En_out(En_out_tb1)
    );
    
initial begin
Data_tb1<=0; clk_tb1<=0; reset_tb1<=0;
end
always #5 clk<=~clk;
   
endmodule
要輸入的測試數字
首先我們要先寫一下一個測試的訊號,大小晚一點再加。
reg[???] Data_Test_input
要輸入的測試數字
然後還有一個就是在數 Data 的大小,就是之前概念
之前的概念:
 if(Count_clk >= 287 ) begin
            Count_clk<=0;
        end
        else begin
             Count_clk<=Count_clk+1;
        end
end
之前數時間中的 Count_clk 的概念
那我們設定一個 reg 為 Count_Test
reg Count_Test
老樣子列一下要寫甚麼
1. 觸發的clk 條件
Clk當成為 High 時就觸發
always@(posedge clk) begin
    
end
**2. 數到 288 **
照抄之前的概念,數到 288
if( Count_Test >= 287 ) begin
     Count_Test<=0;   
end
else begin
     Count_Test <= Count_Test + 1 ;
end
**3. 傳送資料 **
數到 288 的傳送資料, 明天再寫怎麼傳送,先用?????來代替
if( Count_Test == 0 ) begin
       ?????????? 
       
end
把這兩個合起來吧
我們合起來看,clk 觸發並且 開始數數字
// Clk當成為 High 時就觸發
// 數開始數數字 
always@(posedge clk) begin
    
    // 開始數數字
    if( Count_Test >= 287 ) begin
         Count_Test<=0;
    end
    else begin
         Count_Test <= Count_Test + 1 ;
    end
    
    
end
將輸入的 reg 加入進去吧
我們來加入進去看看
module tb1();
reg Data_tb1;
reg clk_tb1;
reg reset_tb1;
// 輸入的 reg             
reg[???] Data_Test_input
Wire[7:0] Out_tb1;
Wire En_out_tb1;
Rs232_test1 Rs232_test_tb1(
    .Data1(Data_tb1),.clk(clk_tb1),.reset1(reset_tb1),
    .Out1(Out_tb1),.En_out(En_out_tb1)
    );
    
    
    
initial begin
Data_tb1<=0; clk_tb1<=0; reset_tb1<=0;
end
always #5 clk<=~clk;
// Clk當成為 High 時就觸發
// 數開始數數字 
always@(posedge clk) begin
    
    // 開始數數字
    if( Count_Test >= 287 ) begin
         Count_Test<=0;
    end
    else begin
         Count_Test <= Count_Test + 1 ;
    end
    
    if( Count_Test == 0 ) begin
       ?????????? 
       
    end
    
end
endmodule
明天再寫要傳送的資料寫法